package com.example.ruoyivoicecall.common;

import java.io.*;

/**
 * 文件操作工具类
 */
public class FileCommon {
    
    /**
     * 复制文件
     * @param srcFilePath 源文件路径
     * @param destFilePath 目标文件路径
     * @return 是否复制成功
     */
    public static boolean copyFile(String srcFilePath, String destFilePath) {
        File srcFile = new File(srcFilePath);
        File destFile = new File(destFilePath);
        
        // 检查源文件是否存在
        if (!srcFile.exists() || !srcFile.isFile()) {
            System.out.println("源文件不存在或不是文件: " + srcFilePath);
            return false;
        }
        
        // 确保目标目录存在
        File destDir = destFile.getParentFile();
        if (destDir != null && !destDir.exists()) {
            if (!destDir.mkdirs()) {
                System.out.println("无法创建目标目录: " + destDir.getPath());
                return false;
            }
        }
        
        // 复制文件
        try (InputStream in = new FileInputStream(srcFile);
             OutputStream out = new FileOutputStream(destFile)) {
            
            byte[] buffer = new byte[1024];
            int length;
            while ((length = in.read(buffer)) > 0) {
                out.write(buffer, 0, length);
            }
            
            return true;
        } catch (IOException e) {
            System.out.println("复制文件失败: " + e.getMessage());
            e.printStackTrace();
            return false;
        }
    }
    
    /**
     * 删除文件
     * @param filePath 文件路径
     * @return 是否删除成功
     */
    public static boolean deleteFile(String filePath) {
        File file = new File(filePath);
        if (file.exists() && file.isFile()) {
            return file.delete();
        }
        return false;
    }
    
    /**
     * 创建目录
     * @param dirPath 目录路径
     * @return 是否创建成功
     */
    public static boolean createDirectory(String dirPath) {
        File dir = new File(dirPath);
        if (!dir.exists()) {
            return dir.mkdirs();
        }
        return dir.isDirectory();
    }
}
